Techniques have been used to identify and recommend to a user content items that are similar to or related to a particular content item that the user has selected, accessed, purchased, expressed interest in, etc. In one approach, a large matrix is formed, for example, with each column of the matrix corresponding to a different user and each row corresponding to a different item. Each cell of the matrix corresponds to a particular user and a particular item, and the value entered into each cell depends upon whether that particular user has purchased that particular item. For example, a “1” is entered into the cell if the user has purchased the item and a “0” if the user has not purchased the item. Recommendations of items may be determined by measuring the similarities between users or items.
For example, the vector corresponding to a first user may be compared with other user vectors to determine similarity in preferences (e.g., by similar purchases made by each user). The dot products between pairs of vectors may be computed, and a second user vector that results in a large dot product with the first user vector is deemed to indicate that the second user is highly similar to the first user and, therefore, likely has similar preferences as the first user. The items purchased by the second user that have not been already purchased by the first user are presented to the first user as recommendations. A similar technique can be used to determine similarities between an item purchased by a given user and other items in the matrix in order to generate recommendations for similar items. In this case, other items that have been purchased by most of the same users are deemed to be similar to a given item. Overall, however, the matrix based approach is not optimal because it requires a very large matrix and associated storage and processing resources.
Other prior art approaches rely on determining the similarity between two items based at least in part upon a count of the number of times both items in the pair of items have been purchased by users. However, typically such approaches fail to correct for highly popular and, likewise, highly unpopular items, resulting in skewed similarity values in such cases and/or are not sufficiently sensitive to changes in popularity.
Thus, there is a need for an improved way to recommend content items.